from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.commons.utils import JsCode
from pyecharts.faker import Faker

# 自定义颜色的值。0-50红色，5-100蓝色，100+绿色
color_function = """
        function (params) {
            if (params.value > 0 && params.value < 50) {
                return 'red';
            } else if (params.value > 50 && params.value < 100) {
                return 'blue';
            }
            return 'green';
        }
        """
c = (
    Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis(
        "商家A",
        Faker.values(),
        # 设置颜色为js代码的自定义颜色
        itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),
    )
        .add_yaxis(
        "商家B",
        Faker.values(),
        itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),
    )
        .add_yaxis(
        "商家C",
        Faker.values(),
        itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)),
    )
        .set_global_opts(title_opts=opts.TitleOpts(title="03柱状图自定义柱状颜色"))
        .render("03柱状图自定义柱状颜色.html")
)
